package com.kly.user.db.dao;
import com.fqgj.common.base.BaseMapper;
import com.kly.enums.ParameterTypeEnum;
import com.kly.user.db.dbo.PaidOrderDBO;
import com.kly.user.db.entity.UserTaskDetailEntity;
import com.kly.user.task.enums.TaskStatusEnum;
import com.kly.user.task.enums.TaskTypeEnum;

import java.util.List;


public interface UserTaskDetailDao  extends BaseMapper<UserTaskDetailEntity> {
    /**
     * 增加一条待执行的任务
     */
    UserTaskDetailEntity addTask(ParameterTypeEnum taskType, String request);
    /**
     * 记录一条待已执行过的任务
     */
    UserTaskDetailEntity addHasExecutedTask(TaskTypeEnum taskType, TaskStatusEnum taskStatus, String request, String result);
    /**
     * 记录一条待已执行过的任务
     */
    UserTaskDetailEntity addHasExecutedTask(TaskTypeEnum taskType, TaskStatusEnum taskStatus,
                                            String request, String result, String extend, String url, String taskDesc);
    /**
     * 修改任务执行结果
     */
    int updateTask(Long id, Integer status, String result);
    /**
     * 待处理任务查询
     */
    List<UserTaskDetailEntity> queryNeedProcessJobs(Integer maxExecuteTimes);

    List<UserTaskDetailEntity> queryNeedProcessJobsByType(Integer taskType, Integer maxExecuteTimes);
    /**
     * 获取近N小时内的待推送的数据
     */
    List<UserTaskDetailEntity> listPaidOrders(Integer hour, String eventName);

    /**
     * 获取最近一天数据
     */
    List<UserTaskDetailEntity> listAllTaskLatestDay(Integer taskType);
    /**
     * 最近一天支付完成订单记录
     */
    List<PaidOrderDBO> listAllPaidOrdersLatestDay();
    /**
     * 最近一天支付完成订单记录
     */
    List<PaidOrderDBO> listAllPaidOrdersLatestDayFromAppflyers();

}